package scv.control.cadastro;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import scv.beans.Grupo;

@SuppressWarnings("serial")
public class CadastroGrupo extends JFrame{
	
	private JButton cadastrar, fechar, limpar;
	private JLabel nomeGrupo ;
	private JTextField nome ;
	public static EntityManagerFactory factory = null;
	public static CadastroProduto cadastroProduto = null;
	
	public CadastroGrupo(EntityManagerFactory f, CadastroProduto produto) {
		factory = f;
		cadastroProduto = produto;
		setTitle("Cadastro de Grupo");
		setLayout(null);
		
		cadastrar = new JButton("Cadastrar");
		fechar = new JButton("Fechar");
		limpar = new JButton("Limpar");
		
		nomeGrupo = new JLabel("Nome Grupo: ");
		
		nome = new JTextField(120);
		
		nomeGrupo.setBounds(50,50,120,20);
		
		nome.setBounds(50,75,500,20);
		
		cadastrar.setBounds(50,220,100,25);
		fechar.setBounds(450,220,100,25);
		limpar.setBounds(155,220,100,25);
		
		add(cadastrar);
		add(fechar);
		add(limpar);
		
		add(nomeGrupo);
		
		add(nome);
		
		setSize(610,330);
		setVisible(true);
		setLocationRelativeTo(null);
		setResizable(false);
		
		fechar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				dispose();
				if(cadastroProduto != null) 
					cadastroProduto.carregarListaProduto();
			}
		});
		
		limpar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				nome.setText("");
				nome.requestFocus();
			}
		});
		
		cadastrar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				EntityManager manager = factory.createEntityManager();
				
				if(nome.getText().equals("")){
					JOptionPane.showMessageDialog(null,"Informe o nome do Grupo");
					nome.requestFocus();
				}
				else{
					Grupo grupo = new Grupo();
					grupo.setNomeGrupo(nome.getText().toUpperCase());
					
					manager.getTransaction().begin();
					manager.persist(grupo);
					manager.getTransaction().commit();
					manager.close();
					
					JOptionPane.showMessageDialog(null,"Cadastro realizado com sucesso");
					
				}
			}
		});
	}
}
